--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit ed7b5de51c1b93dbc7ca68405d3b0dd0b755135a
Parents : cd59f31
Author : Mark Qvist <mark@unsigned.io>
Date : 2021-10-08T14:46:20+02:00
Added conversation sort option
Changes
Diff
diff --git a/nomadnet/ui/textui/Conversations.py b/nomadnet/ui/textui/Conversations.py
index 5a155a4..d24220a 100644
--- a/nomadnet/ui/textui/Conversations.py
+++ b/nomadnet/ui/textui/Conversations.py
@@ -20,7 +20,7 @@ class ConversationDisplayShortcuts():
def __init__(self, app):
self.app = app
- self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear Editor [C-w] Close [C-t] Editor Type [C-p] Purge [C-x] Clear History"), "shortcutbar")
+ self.widget = urwid.AttrMap(urwid.Text("[C-d] Send [C-k] Clear Editor [C-w] Close [C-t] Editor Type [C-p] Purge [C-x] Clear History [C-o] Sort"), "shortcutbar")
class ConversationsArea(urwid.LineBox):
def keypress(self, size, key):
@@ -654,6 +654,7 @@ class ConversationWidget(urwid.WidgetWrap):
self.source_hash = source_hash
self.conversation = nomadnet.Conversation(source_hash, nomadnet.NomadNetworkApp.get_shared_instance())
self.message_widgets = []
+ self.sort_by_timestamp = False
self.updating_message_widgets = False
self.update_message_widgets()
@@ -778,6 +779,9 @@ class ConversationWidget(urwid.WidgetWrap):
self.toggle_editor()
elif key == "ctrl x":
self.clear_history_dialog()
+ elif key == "ctrl o":
+ self.sort_by_timestamp ^= True
+ self.conversation_changed(None)
else:
return super(ConversationWidget, self).keypress(size, key)
@@ -798,7 +802,10 @@ class ConversationWidget(urwid.WidgetWrap):
message_widget = LXMessageWidget(message)
self.message_widgets.append(message_widget)
- self.message_widgets.sort(key=lambda m: m.sort_timestamp, reverse=False)
+ if self.sort_by_timestamp:
+ self.message_widgets.sort(key=lambda m: m.timestamp, reverse=False)
+ else:
+ self.message_widgets.sort(key=lambda m: m.sort_timestamp, reverse=False)
from nomadnet.vendor.additional_urwid_widgets import IndicativeListBox
self.messagelist = IndicativeListBox(self.message_widgets, position = len(self.message_widgets)-1)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────